package com.example.demo.sensitive.dto.request;

import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;

/**
 * @ClassName DatabaseConfigRequest
 * @Description 数据库配置请求对象
 * @Author System
 * @Date 2025/9/19
 **/
@Data
public class DatabaseConfigRequest {

    /**
     * 配置名称
     */
    @NotBlank(message = "配置名称不能为空")
    private String name;

    /**
     * 数据库类型
     */
    @NotBlank(message = "数据库类型不能为空")
    private String dbType;

    /**
     * 数据库主机地址
     */
    @NotBlank(message = "主机地址不能为空")
    private String host;

    /**
     * 数据库端口
     */
    @NotNull(message = "端口不能为空")
    private Integer port;

    /**
     * 数据库名称
     */
    @NotBlank(message = "数据库名称不能为空")
    private String databaseName;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名不能为空")
    private String username;

    /**
     * 密码
     */
    @NotBlank(message = "密码不能为空")
    private String password;

    /**
     * 连接参数
     */
    private String connectionParams;

    /**
     * 是否启用
     */
    private Integer status = 1;

    /**
     * 是否只读连接
     */
    private Integer isReadOnly = 1;

    /**
     * 最大连接数
     */
    private Integer maxConnections = 10;

    /**
     * 连接超时时间(秒)
     */
    private Integer connectTimeout = 30;

    /**
     * 查询超时时间(秒)
     */
    private Integer queryTimeout = 60;

    /**
     * 描述说明
     */
    private String description;
}
